import { topCategory } from '@/api/constants'
import { findAllCategory } from '@/api/category'
// 分类模块
export default {
  namespaced: true,
  state() {
    return {
      // 如果默认是 [] 数组，看不见默认的9个分类，等数据加载完毕才会看到
      // 所以根据常量数据来生成一个默认的顶级分类数据，不会出现空白（没数据的情况）
      // 依赖 topCategory 重新设置，保证初始化时不白屏
      list: topCategory.map(item => ({ name: item })) // 对象数组，加属性 name
    }
  },
  mutations: {
    setList(state, payload) {
      state.list = payload
    },
    show(state, id) {
      const currCategory = state.list.find(item => item.id === id)
      currCategory.open = true
    },
    hide(state, id) {
      const currCategory = state.list.find(item => item.id === id)
      currCategory.open = false
    }
  },
  actions: {
    async getList({ commit }) {
      const data = await findAllCategory()
      // 给每一个二级分类加一个open属性
      data.result.forEach(top => {
        top.open = false
      })
      commit('setList', data.result)
    }
  }
}
